Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.12.2016, 12:26
Аватар для it-seo77
Новичок на форуме
Отправить личное сообщение для it-seo77 Посмотреть профиль Найти все сообщения от it-seo77
 
Регистрация: 22.12.2016
Сообщений: 7

На почту не приходят письма с заявками отправленные через лендинг
Всем привет, не могу разобраться почему на почту с лендинга не приходят заявки.
Есть файл script.js в нём есть такая часть содержимого.
function clearForm () {
                $(this).removeClass('valid-for-file-upload');
                $('input:not(":checkbox"), textarea, select').val('');
                $('.form-group').removeClass('has-success').removeClass('has-error');
                formtype = '';
            };
            $thisText = $(this).text();
            $thisBtn.addClass('disabled').text('Отправка...')
 
            $.ajax({ //отправляем аяксом
                url:'php/mail.php',
                type:'POST',
                data:'jsonData=' + $.toJSON(formData),
                success: function() {
                    $('.submit-form-loading').fadeOut();
                    $('.submit-form-error').fadeOut();
                    magnificPopup.close();
                    setTimeout(function() {
                        $('.thank-you-btn').magnificPopup({
                            type: 'ajax',
                            removalDelay: 500, 
                            ajax: {
                              settings: null,
                              cursor: 'mfp-ajax-cur',
                              tError: '<a href="%url%">Контент</a> не может быть загружен.',
                            },
                            callbacks: {
                                beforeOpen: function() {
                                   this.st.mainClass = 'mfp-zoom-in';
                                },
                            },
                            midClick: true
                        }).magnificPopup('open');
                    }, 501);
                    $thisBtn.removeClass('disabled').text($thisText);
                    clearForm ();
                    reachGoalFunc(yaTarget);
                    reachGoalFunc(obwee_koli4estvo);
 
                },
                error: function() {
                    alert('При отправке данных произошла ошибка, попробуйте снова.');
                    $thisBtn.removeClass('disabled').text($thisText);
                    clearForm ();
                }
            }); 
        }
    });
});


В файле index.php следующая часть кода:

<div class="buy-one-click">
        <div class="container">
            <div class="section-title">
                <h3>Продайте всего за 1 клик!</h3>
            </div>
            <a href="modal-service1.html" class="ajax-popup-link btn btn-success" style="text-transform: none; padding: 20px 20px 20px 40px; width:300px; margin:10px auto 0; display:block; line-height: 0.8;position:relative; font-size:22px;"><img src="img/arrow-right.png" style="position:absolute; top:21px;left:53px;">Оставить
                заявку</a>
 
        </div>


И третий файл mail.php

<?php
    if (isset($_POST['notEmpty'])) {$name = $_POST['notEmpty'];}
    if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
    if (isset($_POST['formData'])) {$formData = $_POST['formData'];}
 
    $to = "online@yandex.ru"; /*Укажите адрес, га который должно приходить письмо*/
    $sendfrom   = "online@yandex.ru"; /*Укажите адрес, с которого будет приходить письмо, можно не настоящий, нужно для формирования заголовка письма*/
    $headers  = "From: " . strip_tags($sendfrom) . "\r\n";
    $headers .= "Reply-To: ". strip_tags($sendfrom) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html;charset=utf-8 \r\n";
    $subject = "Новая заявка";
    $message = "$formData<br> <b>Имя пославшего:</b> $name <br><b>Телефон:</b> $phone<br>";
    $send = mail ($to, $subject, $message, $headers);
?>

Не могу понять где тут и что неправильно.
Ответить с цитированием
  #2 (permalink)  
Старый 22.12.2016, 13:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Что такое formData, и каким это образом на сервере появятся $_POST['notEmpty'], $_POST['phone'], $_POST['formData'], если сервер получит JSON под ключом jsonData?
Ответить с цитированием
  #3 (permalink)  
Старый 22.12.2016, 14:19
Аватар для it-seo77
Новичок на форуме
Отправить личное сообщение для it-seo77 Посмотреть профиль Найти все сообщения от it-seo77
 
Регистрация: 22.12.2016
Сообщений: 7

Как тогда правильно настроить этот mail.php ?Я так с примеров вытащил данную форму.
Ответить с цитированием
  #4 (permalink)  
Старый 22.12.2016, 17:54
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Ничего не надо настраивать, нужно принимать, что отдал клиент, а не писать отсебятину.
Во-первых, в коде клиентском не видно, что такое formData.
Во-вторых в jQury нет метода преобразования объекта в JSON, это делается его плагином методом $.toJSON().

То есть, если formData, это действительно объект описывающий поля формы
{notEmpty : значение, phone : значение, formData : значение}, то этот объект будет передан серверу как json-строка под ключом jsonData.

Чтобы получить поля формы, из этого, нужно:

$post = json_encode($_POST['jsonData']); //получим объект
//получить в котором значение поля к примеру phone так
$phone = $post->phone;
//если же после преобразования нужен не объект, а массив, то так
$post = json_encode($_POST['jsonData'], 1);
//а значение поля phone так
$phone = $post['phone'];


Так что разбирайтесь сначала с тем что отправляет клиент.

Последний раз редактировалось laimas, 22.12.2016 в 18:50.
Ответить с цитированием
  #5 (permalink)  
Старый 22.12.2016, 20:04
Аватар для it-seo77
Новичок на форуме
Отправить личное сообщение для it-seo77 Посмотреть профиль Найти все сообщения от it-seo77
 
Регистрация: 22.12.2016
Сообщений: 7

Реально не понятно как сделать рабочий файл mail.php
Письма не долетают, может реально подскажет как правильно настроить этот файл?
Ответить с цитированием
  #6 (permalink)  
Старый 23.12.2016, 00:05
Аватар для it-seo77
Новичок на форуме
Отправить личное сообщение для it-seo77 Посмотреть профиль Найти все сообщения от it-seo77
 
Регистрация: 22.12.2016
Сообщений: 7

Вставил так код приходит только следующее пустое значение, где нет отображения имени отправителя и номер телефона.

Имя отправителя:
Телефон:
<?php
    if (isset($_POST['notEmpty'])) {$name = $_POST['notEmpty'];}
    if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
    if (isset($_POST['formData'])) {$formData = $_POST['formData'];}

    $to = "online@yandex.ru"; /*Укажите адрес, на который должно приходить письмо*/
    $sendfrom   = "online@yandex.ru"; /*Укажите адрес, с которого будет приходить письмо, можно не настоящий, нужно для формирования заголовка письма*/
    $headers  = "From: " . strip_tags($sendfrom) . "\r\n";
    $headers .= "Reply-To: ". strip_tags($sendfrom) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html;charset=utf-8 \r\n";
    $subject = "=?UTF-8?B?".base64_encode($subject)."?=";
    $message = "$formData<br> <b>Имя отправителя:</b> $name <br><b>Телефон:</b> $phone<br>";
    $send = mail ($to, $subject, $message, $headers);
?>
Ответить с цитированием
  #7 (permalink)  
Старый 23.12.2016, 01:25
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Нет у вас понятия того, что я написал ранее, а потому продолжаете заниматься хренью. Как еще объяснить что искать причину нужно начиная с кода клиентского, а затем серверного, я не знаю.
Ответить с цитированием
  #8 (permalink)  
Старый 23.12.2016, 09:26
Аватар для it-seo77
Новичок на форуме
Отправить личное сообщение для it-seo77 Посмотреть профиль Найти все сообщения от it-seo77
 
Регистрация: 22.12.2016
Сообщений: 7

Как всегда чувствовал, что тут ловить нечего, зря только время потерял, никакой помощи не жди, одна лишь критика, набор кармы, мерзость и всё. Спасибо вам всем!
Ответить с цитированием
  #9 (permalink)  
Старый 23.12.2016, 09:56
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Вы что ожидали что тут волшебники способные догадаться по отрывку кода что у вас на клиенте происходит? Это не так.
Вам дважды говорилось выяснить что отдает клиент, где результат этого?
Включайте отладчик в браузере, анализируйте и отвечайте на поставленные вопросы. Тогда можно более конкретно о чем то говорить.

А если будем строить из себя обидчивого мальчика и продолжать писать всякую хрень на сервере методом тыка, тога увы.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не приходят письма на mail.ru Arsklad Оффтопик 0 06.05.2016 21:07
Отправка файла на почту через модальное окно zazula Общие вопросы Javascript 3 29.07.2015 13:58
отправка письма на почту (php) cyber Серверные языки и технологии 25 24.02.2014 12:37
Отправить почту из страницы через javascript prog90 Javascript под браузер 5 14.09.2012 17:38
Не приходят письма B~Vladi Сайт Javascript.ru 4 17.07.2009 18:22